package jasongarrett.spida;

import java.util.List;

public interface JobApplicationService
{
	/**
	 * List the available jobs
	 * @return the Jobs available
	 * @throws Exception
	 */
	List<Job> getJobs() throws Exception;
	
	/**
	 * Submit an application for a job
	 * @param application the Application for the Job
	 * @return applicationId
	 * @throws Exception
	 */
	String createApplication(Application application) throws Exception;
	
	/**
	 * Delete a previously-submitted application
	 * @param applicationId  The _id of the application to delete
	 * @throws Exception
	 */
	void deleteApplication(String applicationId) throws Exception;

	/**
	 * Retrieve a previously-submitted application
	 * @param applicationId  The _id of the application to retrieve
	 * @return  the Application
	 * @throws Exception
	 */
	Application getApplication(String applicationId) throws Exception;
}
